using Sinacor.Infra.UI.Common;
using System.Collections.Generic;

namespace Sinacor.UI.Bovespa.Parametro.Communication.Translator.DataContractToModel
{
	public class ParametroBolsa 
    {

		public ParametroBolsa(){}

		public Model.ParametroBolsa ToParametroBolsa(Sinacor.UI.Bovespa.Parametro.Communication.Bovespa.Parametro.ParametroBolsa.ParametroBolsaResponse response)
        {
            Model.ParametroBolsa to = new Model.ParametroBolsa();

            to.AgrupaNota = response.AgrupaNota;
            to.BaseLiquido = response.BaseLiquido;
            to.CaminhoNota = response.CaminhoNota;
            to.Comissao = response.Comissao;
            to.Correspondente = response.Correspondente;
            to.EnviaAgente = response.EnviaAgente;
            to.EnviaCarteira = response.EnviaCarteira;
            to.IntegraContabilidade = response.IntegraContabilidade;
            to.IntegraContasCorrentes = response.IntegraContasCorrentes;
            to.IntegraCustodia = response.IntegraCustodia;
            to.IntegraTesouraria = response.IntegraTesouraria;
            to.LiquidoNota = response.LiquidoNota;
            to.Mensagem = response.Mensagem;
            to.NumeraNota = response.NumeraNota;
            to.SemOperacao = response.SemOperacao;
            to.UltimaNotaEmitida = response.UltimaNotaEmitida;
            to.ZeraNota = (Model.Enum.TipoPeriodo) response.ZeraNota;

			return to;
		}

		public ModelCollection<Model.TipoNota> ToTipoNota(List<Sinacor.UI.Bovespa.Parametro.Communication.Bovespa.Parametro.ParametroBolsa.TipoNotaResponse> from)
        {
            ModelCollection<Model.TipoNota> to = new ModelCollection<Model.TipoNota>(); 

            foreach (Sinacor.UI.Bovespa.Parametro.Communication.Bovespa.Parametro.ParametroBolsa.TipoNotaResponse item in from)
            {
                to.Add(ToTipoNota(item));
            }
			return to;
		}

		public ModelCollection<Model.ParametroBolsa> ToParametroBolsa(List<Sinacor.UI.Bovespa.Parametro.Communication.Bovespa.Parametro.ParametroBolsa.ParametroBolsaResponse> responseList)
        {
            ModelCollection<Model.ParametroBolsa> to = new ModelCollection<Model.ParametroBolsa>();

            foreach (Sinacor.UI.Bovespa.Parametro.Communication.Bovespa.Parametro.ParametroBolsa.ParametroBolsaResponse item in responseList)
            {
                to.Add(ToParametroBolsa(item));
            }
            return to;
        }

		public Model.TipoNota ToTipoNota(Sinacor.UI.Bovespa.Parametro.Communication.Bovespa.Parametro.ParametroBolsa.TipoNotaResponse from)
        {
            Model.TipoNota to = new Sinacor.UI.Bovespa.Parametro.Model.TipoNota();

            to.AgenteDiaCredito = from.AgenteDiaCredito;
            to.AgenteDiaDebito = from.AgenteDiaDebito;
            to.AgenteEstornoCredito = from.AgenteEstornoCredito;
            to.AgenteEstornoDebito = from.AgenteEstornoDebito;

            to.AjusteNegocioDiaCredito = from.AjusteNegocioDiaCredito;
            to.AjusteNegocioDiaDebito = from.AjusteNegocioDiaDebito;
            to.AjusteNegocioEstornoCredito = from.AjusteNegocioEstornoCredito;
            to.AjusteNegocioEstornoDebito = from.AjusteNegocioEstornoDebito;

            to.AjustePosicaoDiaCredito = from.AjustePosicaoDiaCredito;
            to.AjustePosicaoDiaDebito = from.AjustePosicaoDiaDebito;
            to.AjustePosicaoEstornoCredito = from.AjustePosicaoEstornoCredito;
            to.AjustePosicaoEstornoDebito = from.AjustePosicaoEstornoDebito;
            to.NumeroDiasLiquidacao = from.NumeroDiasLiquidacao;

            to.Cpmf = from.Cpmf;
            to.DayTradeDiaCredito = from.DayTradeDiaCredito;
            to.DayTradeDiaDebito = from.DayTradeDiaDebito;
            to.DayTradeEstornoCredito = from.DayTradeEstornoCredito;
            to.DayTradeEstornoDebito = from.DayTradeEstornoDebito;

            to.DescricaoTipoNota = from.DescricaoTipoNota;
            to.IrOperacoesDiaDebito = from.IrOperacoesDiaDebito;
            to.IrOperacoesEstornoCredito = from.IrOperacoesEstornoCredito;
            to.NotaCorretagemDiaCredito = from.NotaCorretagemDiaCredito;

            to.NotaCorretagemDiaDebito = from.NotaCorretagemDiaDebito;
            to.NotaCorretagemEstornoCredito = from.NotaCorretagemEstornoCredito;
            to.NotaCorretagemEstornoDebito = from.NotaCorretagemEstornoDebito;
            to.CodigoTipoNota = from.TipoNota;

            return to;
		}
	}
}